/** 
* Copyright (C) 2012-2017 ZEEI Inc.All Rights Reserved.
* 项目名称：pls
* 文件名称：ProductUnitServiceImpl.java
* 包  名  称：com.zeei.app.service.impl
* 文件描述：请修改文件描述
* 创建日期：2017年12月26日上午8:57:54
* 
* 修改历史
* 1.0 chenhuiqiong 2017年12月26日上午8:57:54 创建文件
*
*/


package com.zeei.app.service.impl;

import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.zeei.app.dao.ProductEquipDao;
import com.zeei.app.dao.ProductUnitDao;
import com.zeei.app.dao.ProductsInfoDao;
import com.zeei.app.service.ProductUnitService;
import com.zeei.app.vo.ProductEquipParamVO;
import com.zeei.app.vo.ProductUnitVO;
import com.zeei.app.vo.ProductsInfoVO;

/** 
* @类型名称：ProductUnitServiceImpl
* @类型描述：生产单元管理
* @功能描述：生产单元管理
* @创建作者：chenhuiqiong
*
*/
@Service("productUnitService")
public class ProductUnitServiceImpl implements ProductUnitService {
    @Autowired
    private ProductEquipDao productEquipDao;
    
    @Autowired
    private ProductsInfoDao productsInfoDao;
    
    @Autowired
    private ProductUnitDao productUnitDao;
    /* (non-Javadoc)
     * @see com.zeei.app.service.ProductUnitService#queryProductEquip(com.zeei.app.vo.ProductEquipVO)
     */
    @Override
    public List<ProductUnitVO> queryProductUnit(ProductUnitVO productUnitVO) {
	Integer psCode = productUnitVO.getPsCode();
	
	ProductEquipParamVO productEquipParam = new ProductEquipParamVO();
	productEquipParam.setPsCode(psCode);
	List<ProductEquipParamVO>  productEquipList= productEquipDao.queryProductEquip(productEquipParam);
	
	ProductsInfoVO productsInfo = new ProductsInfoVO();
	productsInfo.setPsCode(psCode);
	List<ProductsInfoVO> productsInfoList = productsInfoDao.queryProductsInfo(productsInfo);
	
	List<ProductUnitVO> productUnitList = productUnitDao.queryProductUnit(productUnitVO);
	for(ProductUnitVO productUnit : productUnitList){
	    List<ProductEquipParamVO> productEquips = productEquipList.stream().filter(s -> productUnit.getProductUnitId().equals(s.getProductUnitId())).collect(Collectors.toList());
	    productUnit.setProductEquipList(productEquips);
	    
	    List<ProductsInfoVO> productsInfos =  productsInfoList.stream().filter(s -> productUnit.getProductUnitId().equals(s.getProductUnitId())).collect(Collectors.toList());
	    productUnit.setProductsInfoList(productsInfos);
	}
	return productUnitList;
    }

}

